Dies ist eine Reihe von angepassten FreeCAD Befehlen und Objekten, die hauptsächlich helfen, das Zeichnen von Rahmen und Rohrleitungen zu beschleunigen.
Aus Zweckmäßigkeit sind Flamingo/Dodo Werkzeuge in drei Werkzeugleisten/Menüs + ein Hilfsprogrammsatz gruppiert.


https://github.com/oddtopus/flamingo
https://github.com/oddtopus/dodo
Dieser Arbeitsbereich kann über den Addon-Manager installiert werden. Für die manuelle Installation siehe Weitere Arbeitsbereiche installieren.
Bei einem Trägerobjekt und einer Kante im Modell legt dieses Werkzeug den Träger über die Kante, indem es diese nacheinander auswählt, bis die ESC-Taste gedrückt wird.
Dialogfeld zum Erstellen von Trägern des zuvor im Modell ausgewählten Typs über mehrere in der Ansicht ausgewählte Kanten.
Mit der Schaltfläche Auswählen kann die Art des Trägers geändert werden.
Werkzeug zum Erstellen eines durchgehenden DWire über den durch die im Ansichtsfenster ausgewählten Kanten definierten Pfad, auch wenn diese sich nicht berühren oder sich in der Mitte schneiden oder zu verschiedenen Objekten gehören. Die einzige Einschränkung besteht darin, dass zwischen zwei aufeinanderfolgenden Kanten, in der Reihenfolge, in der sie ausgewählt wurden, eine Schnittstelle vorhanden ist. Außerdem erhält der DWire die Ansichtseigenschaften einer Mittellinie, d. h. orange und gestrichelt.
Dialogfeld zum Erstellen des Profilsatzes, der im Modell für das Objekt FrameLine verwendet werden soll.
Weitere Profiltabellen können durch Hinzufügen der entsprechenden CSV-Datei im Ordner /tables erstellt werden. Die Regeln zum Erstellen oder Anpassen solcher Tabellen ähneln denen für Pipelines.
Andere Profile können im Modell entworfen und in die Gruppe "Profiles_set" gezogen werden.
Die Ausrichtung der DWires kann die Darstellung von Trägern beeinflussen.
In dodo öffnet sich ein Dialog, aus dem es möglich ist, 10 Formen für den Trägerquerschnitt mit kundenspezifischen Abmessungen zu erstellen:
Wie bei "pype-line"-Objekten handelt es sich hierbei um einen Dialog zum Erstellen und Ändern der Eigenschaften von "frame-line"-Objekten.
Also similarly to what seen above, the frame-lines are objects that collects properties common to a set of beams (namely the beam's section) which are included in a common group in the tree of the model. They also have an optional property ".Base", by default set to None, which is the centerline of the beams of the frame. After a path, alias .Base, is defined (a DWire or a Sketch) other beams can be added to the frame-line but they will be deleted when Redraw is invoked. The dialog provides the following features:
If the name of a FrameLine object is modified, also the name of the relevant group will change automatically but not viceversa
Similar to the analogous feature in the Pype menu, this is a container for beams structured on a .Base. The base can be a DWire, a Sketch or also the edges of a solid shape. When the underlying base is changed, also the position and length of the beams is modified accordingly. It's possible to trim/extend to any geometry the beams and rotate the sections aroud the center-line through the commands provided in the dialog: in this way the modification is not lost when the document is recomputed.
When one beam belonging to a framebranch is selected in the view area, the TAIL is visually highlighted. That allows to change manually the offsets of tail and head, beside the rotation of the section, using the commands provided in the dialog.
Werkzeug zum Drehen eines Objekts um die Z-Achse seiner Form um 45 Grad.
Werkzeug zum Drehen eines Objekts um die "X"-Achse seiner Form um 180 Grad. Hinweise: Wenn eine Kante des Objekts ausgewählt ist, wird diese als Drehpunkt verwendet.
Dialog zum Verschieben und Kopieren von Objekten.
X, Y und Z-Textboxen für die direkte Eingabe des Übersetzungsumfangs in jede Richtung.
Das Textfeld Multiple (Mehrfach) ist der Mehrfachkoeffizient des Übersetzungsumfangs.
Das Textfeld Steps (Schritte) ist der Nenner des Übersetzungsbetrags. Es wird verwendet, wenn der Übersetzungsbetrag in mehreren Schritten abgedeckt werden soll.
Mit der Schaltfläche Get displacement (Verschiebung abrufen) kann man den Betrag und die Richtung der Verschiebung aus der Entfernung ausgewählter Elemente (Punkte, Kanten, Flächen) oder sogar aus einer einzelnen Kante abrufen. Im letzteren Fall wird ein grüner Pfeil angezeigt, um die Richtung anzuzeigen.
OK um die Aktion auszuführen und Abbrechen um den Dialog zu schließen.
Werkzeug zum Verschieben und Drehen der Träger, um zwei Kanten miteinander zu verbinden. Wie oben, jedoch werden die Kanten zusätzlich kolinear ausgerichtet.
Dialog zum Drehen eines Trägers oder eines anderen Objekts um eine seiner Kanten.
Winkel-Textbox um den Drehwinkel einzufügen.
Schaltfläche Reverse (Umgekehrt), um bei Bedarf in die entgegengesetzte Richtung zu drehen.
OK um die Aktion auszuführen und Abbrechen um den Dialog zu schließen.
Werkzeug zum Ausrichten der parallelen Flächen zweier Objekte. Tatsächlich bringt der Befehl alle ausgewählten Flächen auf dieselbe Ebene, wobei die Position und Ausrichtung der zuerst ausgewählten Fläche sowie der Schwerpunkt aller ausgewählten Flächen berücksichtigt werden. Somit werden die Objekte auch dann verschoben, wenn die Flächen nicht parallel sind.
Werkzeug zum Verbinden zweier paralleler Kanten. Tatsächlich verschiebt der Befehl die Objekte entlang der kürzesten Strecke ihrer ausgewählten Kante zur ersten Kante. Auf diese Weise wird das Objekt auch dann verschoben, wenn die Kanten nicht parallel sind, und es ist eine gute Möglichkeit, Objekte an der gewünschten Position zu platzieren. Es ist auch möglich, zwei Kanten desselben Objekts auszuwählen. Mit dieser Methode ist es möglich, ein Objekt schnell in Schritten zu verschieben, die anhand seiner eigenen Geometrie definiert sind.
Dialog zum Drehen von Trägern, sodass ihre Oberflächen parallel zu einer Referenzebene sind.
Es ist möglich, die Referenzfläche vor dem Aufruf des Befehls vorzuwählen.
Mit den drei Schaltflächen XY, XZ und YZ kann die Ausrichtung der Hauptebenen direkt als Referenz ausgewählt werden.
Endlich ist es möglich, die neue Ausrichtung von Flächen direkt über die drei Koordinaten der Normalen und die Schaltfläche Normale festlegen einzugeben.
Dialogfeld zum Ändern der Länge von Trägern.
In das Textfeld die neue Länge eingeben, die auf die ausgewählten Träger oder Rohre angewendet werden soll. Andernfalls übernimmt die Schaltfläche Get Length (Länge abrufen) die neue Länge aus der ausgewählten Geometrie (entweder die Länge eines Trägers oder einer Kante oder den Abstand zwischen geometrischen Elementen).
Mit dem Schieberegler kann die im Textfeld angegebene Länge von -100 % bis +100 % geändert werden.
Mit den Optionsfeldern Head (Vorderteil) und Tail (Hinterteil) kann man auswählen, welche Seite des Trägers geändert werden soll.
Dialogfeld zum Verlängern eines Trägers zu einem ausgewählten Ziel.
Wenn vor dem Aufruf dieses Befehls Entitäten vorausgewählt wurden, wird automatisch die erste Entität als Ziel ausgewählt und das damit verbundene Objekt aus der Auswahl entfernt. In jedem Fall ist es möglich, das Zielobjekt mit der Schaltfläche Select (Auswählen) zu ändern.
Werkzeug zum Ausrichten der Träger im rechten Winkel zu den Rahmen. Um die Funktionsweise besser zu verstehen, liest man bitte das vorherige Tutorial.
Öffnet ein Dialog zum Einfügen von Rohren.
Die Kombination oben rechts ist ein gemeinsames Merkmal aller "Einfügen ..."-Dialogfelder: Sie listet die im aktuellen Dokument definierten Pype-Line-Objekte auf. Damit kann ausgewählt werden, welcher Pype-Line die neu erstellten Rohre zugewiesen werden sollen. Man kann auch die Option <Keine> wählen, damit das Objekt auf der Stammlinie des Teilemodells erstellt wird. In der oberen linken Ecke wird die aktuell ausgewählte Rohrleistung angezeigt, die aus der Liste in der rechten Spalte übernommen wird. Die Rohrdimensionen für jede Rohrleistung sind in CSV-Dateien definiert, die je nach Bedarf mit wenigen einfachen Namensregeln hinzugefügt oder geändert werden können. Für Kurven, Reduzierungen usw. gelten dieselben Regeln für die Definition der Dimensionstabellen: siehe Dateien in ../Mod/flamingo/Tables. Auch die "tutorialPype.pdf" lesen, um zu erfahren, wie diese angepasst oder erstellt werden können.
Um die Position und Ausrichtung von Rohren zu definieren, stehen folgende Auswahlmöglichkeiten zur Verfügung:
Wenn keine Länge angegeben wird, beträgt die Standardeinstellung 200 Einheiten (eine praktische Länge in mm).
Mit der Schaltfläche Reverse (Umkehren) kann man das zuletzt erstellte oder die aktuell ausgewählten Rohre um 180° drehen.
Mit der Schaltfläche Apply (Anwenden) kann man eine andere Länge oder einen anderen Nenndurchmesser auf die aktuell ausgewählten Rohre anwenden.
Öffnet ein Dialog zum Einfügen eines Ellbogens.
Neben den üblichen Widgets anderer "Einfügen..."-Dialoge ermöglicht die Schaltfläche Trim/Extend (Verkürzen/Verlängern) die Anpassung der Länge ausgewählter Rohre an die ausgewählte Kante der Kurve. Zur Festlegung von Position und Ausrichtung sind folgende Auswahlen möglich:
Wenn kein Winkel angegeben ist, beträgt der Standardwert 90 Grad.
Öffnet einen Dialog zum Einfügen konzentrischer Reduzierungen.
Zur Definition von Position und Ausrichtung stehen folgende Auswahlmöglichkeiten zur Verfügung: zwei parallele Rohre (möglicherweise kolinear)
Wenn ein Rohr ausgewählt ist, werden dessen Eigenschaften auf die Reduzierung angewendet.
Wenn zwei Rohre ausgewählt werden, versucht das Werkzeug automatisch, diese mit dem richtigen Haupt- und Nebendurchmesser zu verbinden.
Öffnet ein Dialog zum Einfügen von Kappen.
Zur Definition von Position und Ausrichtung stehen folgende Auswahlmöglichkeiten zur Verfügung: eine oder mehrere gekrümmte Kanten (Achse und Ursprung über der Mitte) ein oder mehrere Scheitelpunkte nichts Wenn eine Rohrkante ausgewählt ist, werden die Eigenschaften der Kappen automatisch an die des Rohrs angepasst.
Einen "Platzhalter" für ein Ventil aus einer CSV-Tabelle wie oben erstellen. Neben der Versatzabmessung ist dies wichtig, da dadurch auch der Kv-Koeffizient definiert wird, der zur Berechnung der Druckverluste mit dem entsprechenden Tool im Menü "Utils" verwendet wird. Es ist zu beachten, dass sich das Symbol des Platzhalters je nach Ventiltyp ändert, wenn in seinem Namen eines der Schlüsselwörter "Kugel", "Absperrklappe" oder "Absperrventil" vorkommt.
Öffnet einen Dialog zum Einfügen von Flanschen. Zur Definition von Position und Ausrichtung stehen folgende Auswahlmöglichkeiten zur Verfügung:
Wenn ein Rohr ausgewählt ist, werden dessen Eigenschaften auf den Flansch angewendet.
Öffnet ein Dialog zum Einfügen von U-Bügeln.
Zur Definition von Position und Ausrichtung stehen folgende Auswahlmöglichkeiten zur Verfügung:
Wenn ein Rohr ausgewählt ist, werden dessen Eigenschaften auf den U-Bolzen angewendet. Darüber hinaus kann durch Aktivieren des entsprechenden Kontrollkästchens ausgewählt werden, ob der U-Bolzen am Kopf- oder Heck-Ende oder in der Mitte der Rohre platziert werden soll.
Mit der Schaltfläche Ref. face (Referenzfläche) kann die Fläche des Trägers ausgewählt werden, an der die Achse des U-Bolzens ausgerichtet werden soll.
Nur in Dodo: Die oben genannten Rohrleitungskomponenten können auch über das spezielle Pie-Menü eingefügt werden.
Bevor wir über den Dialog sprechen, sollten wir uns noch einmal vor Augen führen, was das Pype-Line-Objekt im Zusammenhang mit de Arbeitsbereich Flamingo ist.
Dieses Objekt repräsentiert eine Sammlung von Objekten "PType", die mit den in der Python-Klasse selbst definierten Methoden aktualisiert werden. Derzeit erstellt es mit der Methode "obj.Proxy.update(obj,[edges])" Rohre und Kurven über den angegebenen Kanten und sammelt sie in einer Gruppe, die nach dem obj.Label des Objekts benannt ist. Für Kurven wird ein Standardbiegeradius "3D" (d. h. 1,5 x Außendurchmesser) angewendet. Der Biegeradius ist eine gemeinsame Eigenschaft des Objekts pype-line, sodass er geändert und anschließend neu gezeichnet werden kann. Wenn die Bezeichnung des Objekts pype-line umbenannt wird, wird der Name seiner Gruppe entsprechend geändert.
Die Klasse PypeLine2 verfügt außerdem über das optionale Attribut ".Base", das die Mittellinie der Rohrleitung darstellt:
Wenn das klar ist, öffnet der Befehl den Dialog zum Erstellen oder Ändern einer Pype-Line.
Der Dialog ähnelt stark den zuvor gezeigten Dialogen zum Einfügen anderer Objekte.
Die Rohrbewertungstabellen, in denen der Außendurchmesser und die Wandstärke definiert sind, entsprechen denen für Rohre (z. B. Pipe_SCH-STD.csv).
Wenn <neu> in der Kombinationsfeldauswahl steht und die Taste Insert (Einfügen) gedrückt wird, wird im Dokument ein neues Pype-Line-Objekt mit der entsprechenden Gruppe erstellt.
Es gibt drei Möglichkeiten, eine pypeline (Pipeline) zu erstellen, je nachdem, welche Objekte im Ansichtsfenster ausgewählt sind, wenn man auf Insert (Einfügen) klickt:
Danach ist es weiterhin möglich, andere Objekte (wie Flansch, Reduzierstück...) mit den oben beschriebenen Einfügebefehlen hinzuzufügen. Wenn Objekte innerhalb einer Rohrleitung erstellt werden, werden sie automatisch in die entsprechende Gruppe des Modells aufgenommen und die gemeinsamen Eigenschaften (d. h. Außendurchmesser, Dicke, Farbe, Biegeradius usw.) werden angewendet.
Wenn mindestens eine Rohrleitung bereits im Modell vorhanden ist, kann diese aus der Kombinationsfeld ausgewählt werden: In diesem Fall werden durch Drücken von Einfügen die Rohre und Kurven wie oben beschrieben erstellt, aber anstatt ein neues Rohrleitungsobjekt zu erstellen, werden sie zur ausgewählten vorhandenen Rohrleitung hinzugefügt. Beachten Sie, dass die auf diese Weise erstellten Rohrleitungen beim nächsten Neuzeichnen gelöscht werden.
Mit Pfad holen, Profil holen und Farbe kann man die Eigenschaften .Base, die Nenngröße und die Farbe des Objekts ändern.
Redraw (Neu zeichnen) Erstellt Rohre und Kurven entlang der .Base (falls definiert) neu, nachdem Änderungen am Pfad oder an den Eigenschaften der Rohrleitung vorgenommen wurden.
Part list (Teileliste) generiert eine CSV-Datei mit der Stückliste des Rohrleitungsobjekts, das in der in der Combobox ausgewählten Rohrleitung enthalten ist.
Dieses Pype-Objekt verhält sich wie eine PypeLine, außer dass es automatisch aktualisiert wird, wenn die Basis (ein DWire oder ein SketchObject) geändert wird: Dazu gehören das Ändern der Platzierung, das Dehnen, Verschieben, Hinzufügen oder Löschen von Kanten. Es ist hauptsächlich dazu gedacht, die sekundären Zweige der PypeLine darzustellen (siehe das entsprechende Tutorial), kann aber auch als eigenständiges Objekt fungieren. Dies ist eine wichtige Funktion, mit der sich das Layout von Rohren schnell ändern lässt, hat jedoch den Nachteil, dass die Geometrie starrer definiert ist. Mit anderen Worten: Rohre können nicht unabhängig voneinander geteilt oder in ihrer Größe verändert werden, da sie letztendlich auf der Basis neu gezeichnet werden. Änderungen an OD, thk oder BendRadius des PypeBranch werden hingegen auf alle Rohre und Kurven davon angewendet.
Öffnet ein Dialogfeld, um ein Rohr an einer definierten Stelle zu trennen und optional einen Spalt zwischen den Enden der beiden Teile zu erzeugen. Eine Mehrfachauswahl ist möglich.
In das Textfeld Punkt die Länge eingeben, an der das Rohr oder die Rohre brechen sollen: Dies kann ein absoluter Wert oder nur ein Prozentsatz der Länge sein (eine Zahl gefolgt von %). In einigen Fällen ist es schneller, diesen Wert mit dem Schieberegler unten zu ändern.
Mit der Schaltfläche Länge kann man die Länge des ausgewählten Rohrs messen und diese als Referenz für die Skala des Schiebereglers verwenden.
Wenn man lediglich Rohre in zwei Teile zerbrechen möchte, lassen Sie das Textfeld Gap (Lücke) auf 0 stehen; andernfalls legt man die Länge der Lücke fest. Wenn eine Referenzlänge ausgewählt wird, kann auch die Lücke als Prozentsatz definiert werden. Wie im Tutorial zu sehen ist, kann der Abstand von Geometrien im Modell mit der Schaltfläche Get gap (Erhalte Lücke) gemessen werden: Dabei handelt es sich um den Abstand zwischen beliebigen geometrischen Elementen oder sogar um die Länge einer einzelnen Kante.
Durch Drücken von Break (Brechen) wird die Aktion ausgeführt.
Die Pypeline-Kombination ermöglicht wie üblich die Auswahl der Gruppe, der die neu erstellten Objekte zugewiesen werden sollen.
Wenn zwei kreisförmige Kanten ausgewählt sind, die zu unterschiedlichen Objekten gehören, wird durch Drücken dieser Schaltfläche das zweite Objekt so verschoben, dass die Kanten konzentrisch und koplanar sind.
Das funktioniert nicht nur mit Rohren.
Verbindet die Ports verschiedener Objekte auf grafische Weise. Dies funktioniert nur zwischen Pype-Objekten, auch aus verschiedenen Arbeitsbereichen, bei denen die Eigenschaft Ports[] kongruent definiert ist.
Zwei sich kreuzende Rohre + 1 Ellbogen auswählen: Durch Ausführen dieses Befehls werden sie miteinander verbunden. Dies funktioniert nur zwischen Pype-Objekten, auch aus verschiedenen Arbeitsbereichen.
Durch Auswahl von zwei Rohren verlängert dieser Befehl beide bis zu ihrem Schnittpunkt, sofern vorhanden.
Durch Auswahl von zwei Rohren verlängert dieser Befehl das erste bis zum Schnittpunkt mit dem anderen, sofern vorhanden.
Durch Auswahl einer Fläche und mehrerer Rohre verschiebt dieser Befehl die Rohre entlang der Normalen der Fläche, sodass sie auf deren Ebene liegen.
Ähnlich wie das oben genannte Werkzeug, jedoch wird in diesem Fall die Auflage angehoben oder abgesenkt, sodass die Fläche tangential zum Rohr verläuft.
Befestigt ein Pype-Objekt (2, 3, 4, 5 oder 6) starr am nächsten Ende eines Rohrs (1). Zum Lösen klickt man auf die Schaltfläche, während das befestigte Objekt allein ausgewählt ist.
Öffnet ein Dialogfeld ähnlich wie "Draw a DWire" (DWire zeichnen) zusammen mit dem Dialogfeld "Insert a pipe" (Rohr einfügen): Damit kann man eine Folge von Rohren zeichnen, die durch Kurven verbunden sind, indem man einfach einen Punkt nach dem anderen auswählt. Es ist auch möglich, die Eigenschaften des Rohrs und/oder der Pype-Linie spontan zu ändern.
Dies ist ein Werkzeug zum Erstellen eines "Pype"-Objekts aus einer .STEP-, .IGES- oder .BREP-Datei. Es lädt die importierte Datei in die Shape-Eigenschaft eines FeaturePython.
Die ersten beiden Werkzeuge von utils sind Teil eines separaten Projekts, dessen Ziel es ist, einen automatischen Raumscanner mit einem Schrittmotor und einem Ultraschall-Entfernungsmesser zu entwickeln. Dieses Werkzeug erstellt ein regelmäßiges Polygon innerhalb einer Skizze.
Werkzeug zum Erstellen beliebiger Polygone innerhalb einer Skizze unter Verwendung von Knoten aus einer CSV-Datei, in der diese in Polarkoordinaten gespeichert sind.
Werkzeug zum Abrufen verschiedener Informationen zu dem oder den ausgewählten Objekten. Neben Längen oder Abständen eignet es sich insbesondere für die Bereitstellung von Informationen zu Trägern und Rohren (Länge, Querschnitt, Winkel zwischen).
Werkzeug zum Festlegen der Position und Drehung der Arbeitsebene entsprechend der ausgewählten vorhandenen Geometrie.
Die Normale der Arbeitsebene wird durch Abtasten der Elemente in der folgenden Reihenfolge definiert:
Der Ursprung der Arbeitsebene wird (in dieser Reihenfolge) definiert durch
Verschiebt die Arbeitsebene entlang ihres Normalenvektors. Um die Richtung der Verschiebung anzuzeigen, wird ein temporärer grüner Pfeil auf dem Bildschirm angezeigt. Natürlich sind auch negative Werte zulässig.
Dreht die Arbeitsebene um eine ihrer Achsen. Auch in diesem Fall wird im Ansichtsfenster ein grüner Pfeil angezeigt, um die aktuelle Ausrichtung der Arbeitsebene zu kennzeichnen: Der Pfeil zeigt in Z-Richtung und die lange Basis des Pfeils liegt über der X-Richtung.
Dieses Werkzeug funktioniert genau wie das entsprechende Werkzeug im Arbeitsbereich Draft, verfügt jedoch über einige zusätzliche Optionen am Ende des Dialogfelds. Standardmäßig wird der Ursprung der Arbeitsebene bei jedem hinzugefügten Punkt neu definiert, da dies das Zeichnen von Segmenten mit bekannter Länge und Ausrichtung mithilfe der Option Am Raster ausrichten vereinfacht. Mit den beiden Drucktasten, die auch mit der Tastenkombination Strg+Umschalt+() aufgerufen werden können, lassen sich die Arbeitsebene wie oben gezeigt drehen und versetzen, ohne das DWire-Objekt zu zerstören. Mit den letzten drei Schaltflächen lässt sich die Drehung der Arbeitsebene schnell so ändern, dass sie parallel zu den Hauptebenen ist.
Um ein beliebiges Teil schnell zu verschieben, beispielsweise um auf die darunterliegenden Objekte zuzugreifen, bietet dieses Werkzeug einen grafischen Griff (grüner Pfeil), durch Anklicken dessen die ausgewählten Objekte verschoben und gedreht werden können.
Öffnet einen Dialog zur Berechnung der Druckverluste über die im Ansichtsfenster ausgewählten Rohrteile oder über einen PypeBranch. Der Reibungskoeffizient wird für jedes gerade Rohr und jeden Rohrbogen berechnet. Für andere Objekte wird der konzentrierte Druckverlust über den Strömungsfaktor berechnet, vorausgesetzt, das Attribut Kv ist verfügbar und auf einen positiven Wert gesetzt.
FreeCAD Arbeitsbereiche sind einfach zu programmieren in Python, daher gibt es viele Leute, die zusätzliche Arbeitsbereiche außerhalb der FreeCAD Hauptentwickler entwickeln.
Die external workbenches Seite enthält einige Informationen und Tutorials zu einigen von ihnen, und das FreeCAD Addons Projekt zielt darauf ab, sie zu sammeln und einfach aus FreeCAD heraus zu installieren.
Neue Arbeitsbereiche sind in der Entwicklung, bleib dran!